package com.asset.model.vo;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 公司树节点视图对象 (树形结构展示)
 */
@Data
public class CompanyTreeNodeVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 公司ID (主键)
     */
    private Integer id;

    /**
     * 公司唯一编码 (层级结构)
     */
    private String companyCode;

    /**
     * 公司名称 (树节点显示文本)
     */
    private String label;

    /**
     * 父公司ID (根节点为0)
     */
    private Integer parentId;

    /**
     * 公司类型 (1=集团, 2=子公司, 3=分公司)
     */
    private Integer companyType;

    /**
     * 公司类型名称 (中文描述)
     */
    private String companyTypeName;

    /**
     * 层级路径 (MPTT优化查询)
     */
    private String levelPath;

    /**
     * 采购权限额度(单价)
     */
    private Double purchaseLimitPrice;

    /**
     * 采购权限额度(批次总价)
     */
    private Double batchLimitPrice;

    /**
     * 子节点列表
     */
    private List<CompanyTreeNodeVO> children;

    /**
     * 获取公司类型名称 (根据类型值返回中文名称)
     */
    public String getCompanyTypeName() {
        switch (companyType) {
            case 1:
                return "集团";
            case 2:
                return "子公司";
            case 3:
                return "分公司";
            default:
                return "未知类型";
        }
    }
}